//
//  UIButton+FSLButton.m
//  比柚UI测试项目
//
//  Created by 我演示 on 2019/10/21.
//  Copyright © 2019 Jerry-Fu. All rights reserved.
//

#import "UIButton+FSLButton.h"

@implementation UIButton (FSLButton)
-(instancetype)initWithButtonText:(NSString *)textString textColor:(UIColor *)textColor textFont:(CGFloat)textFont {
    
    if (self = [super init]) {

        [self setTitle:textString forState:UIControlStateNormal];
        [self setTitleColor:textColor forState:UIControlStateNormal];
        self.titleLabel.font = [UIFont systemFontOfSize:textFont];
        
    }
    return  self;
}

/**带有圆角和边框*/
-(instancetype)initWithButtonText:(NSString *)textString textColor:(UIColor *)textColor textFont:(CGFloat )textFont circular:(CGFloat )circularFloat borderWidth:(CGFloat)borderWidth{
    
    if (self = [super init]) {
        self.backgroundColor = [UIColor redColor];
        [self setTitle:textString forState:UIControlStateNormal];
        [self setTitleColor:textColor forState:UIControlStateNormal];
        self.titleLabel.font = [UIFont systemFontOfSize:textFont];
        self.layer.masksToBounds = true ;
        
        self.layer.cornerRadius = circularFloat;
        
        self.layer.borderWidth = borderWidth;
        
    }
    return  self;
    
}


- (void)setLayoutWithEdgeInsetsStyle:(ABSButtonEdgeInsetsStyle)style
                        imageTitleSpace:(CGFloat)space
{
        // 1. 得到imageView和titleLabel的宽、高
    CGFloat imageWith = self.imageView.frame.size.width;
    CGFloat imageHeight = self.imageView.frame.size.height;

    CGFloat labelWidth = 0.0;
    CGFloat labelHeight = 0.0;
    if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) {
            // 由于iOS8中titleLabel的size为0，用下面的这种设置
        labelWidth = self.titleLabel.intrinsicContentSize.width;
        labelHeight = self.titleLabel.intrinsicContentSize.height;
    } else {
        labelWidth = self.titleLabel.frame.size.width;
        labelHeight = self.titleLabel.frame.size.height;
    }

        // 2. 声明全局的imageEdgeInsets和labelEdgeInsets
    UIEdgeInsets imageEdgeInsets = UIEdgeInsetsZero;
    UIEdgeInsets labelEdgeInsets = UIEdgeInsetsZero;

        // 3. 根据style和space得到imageEdgeInsets和labelEdgeInsets的值
    switch (style) {
        case ABSButtonEdgeInsetsStyleTop:
        {
        imageEdgeInsets = UIEdgeInsetsMake(-labelHeight-space/2.0, 0, 0, -labelWidth);
        labelEdgeInsets = UIEdgeInsetsMake(0, -imageWith, -imageHeight-space/2.0 -space, 0);
        }
            break;
        case ABSButtonEdgeInsetsStyleLeft:
        {
        imageEdgeInsets = UIEdgeInsetsMake(0, -space/2.0, 0, space/2.0);
        labelEdgeInsets = UIEdgeInsetsMake(0, space/2.0, 0, -space/2.0);
        }
            break;
        case ABSButtonEdgeInsetsStyleBottom:
        {
        imageEdgeInsets = UIEdgeInsetsMake(0, 0, -labelHeight-space/2.0, -labelWidth);
        labelEdgeInsets = UIEdgeInsetsMake(-imageHeight-space/2.0, -imageWith, 0, 0);
        }
            break;
        case ABSButtonEdgeInsetsStyleRight:
        {
        imageEdgeInsets = UIEdgeInsetsMake(0, labelWidth+space/2.0, 0, -labelWidth-space/2.0);
        labelEdgeInsets = UIEdgeInsetsMake(0, -imageWith-space/2.0, 0, imageWith+space/2.0);
        }
            break;
        default:
            break;
    }
        // 4. 赋值
    self.titleEdgeInsets = labelEdgeInsets;
    self.imageEdgeInsets = imageEdgeInsets;
}

@end
